#ifndef TDL_FRAMEWORK_COMMON_OBJECT_TYPE_DEF_HPP
#define TDL_FRAMEWORK_COMMON_OBJECT_TYPE_DEF_HPP

typedef enum {
  OBJECT_TYPE_UNDEFINED = 0,

  OBJECT_TYPE_PERSON = 100,  // human releated object
  OBJECT_TYPE_FACE,
  OBJECT_TYPE_HAND,
  OBJECT_TYPE_HEAD,
  OBJECT_TYPE_HEAD_SHOULDER,
  OBJECT_TYPE_HARD_HAT,
  OBJECT_TYPE_FACE_MASK,

  OBJECT_TYPE_CAR = 150,  // vehicle related object
  OBJECT_TYPE_BUS,
  OBJECT_TYPE_TRUCK,
  OBJECT_RIDER_WITH_MOTORCYCLE,
  OBJECT_TYPE_MOTORBIKE,
  OBJECT_TYPE_BICYCLE,
  OBJECT_TYPE_LICENSE_PLATE,
  OBJECT_TYPE_EBICYCLE,

  OBJECT_TYPE_FIRE = 200,
  OBJECT_TYPE_SMOKE,

  OBJECT_TYPE_CAT = 250,
  OBJECT_TYPE_DOG,
  OBJECT_TYPE_PET,

  OBJECT_TYPE_TRAFFIC_LIGHT_RED = 300,
  OBJECT_TYPE_TRAFFIC_LIGHT_YELLOW,
  OBJECT_TYPE_TRAFFIC_LIGHT_GREEN,
  OBJECT_TYPE_TRAFFIC_LIGHT_OFF,
  OBJECT_TYPE_TRAFFIC_LIGHT_WAIT_ON,

} TDLObjectType;

typedef enum {
  OBJECT_ATTRIBUTE_UNDEFINED = 0,

  OBJECT_ATTRIBUTE_HUMAN_GENDER = 100,  // human releated object attribute
  OBJECT_ATTRIBUTE_HUMAN_AGE,
  OBJECT_ATTRIBUTE_HUMAN_MASK,
  OBJECT_ATTRIBUTE_HUMAN_HAT,
  OBJECT_ATTRIBUTE_HUMAN_GLASSES,
  OBJECT_ATTRIBUTE_HUMAN_EMOTION,
  OBJECT_ATTRIBUTE_HUMAN_POSE,

  OBJECT_CLS_ATTRIBUTE_FACE_BLURNESS = 200,

} TDLObjectAttributeType;
#endif
